#pragma once

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<assert.h>

typedef int SLTDataType;

typedef struct SListNode 
{
	SLTDataType data;
	struct SLTNode* next;
}SLTNode; 

void SListPrint(SLTNode* phead);
void SListPushBack(SLTNode** pphead, SLTDataType x);
void SListPushFront(SLTNode** pphead, SLTDataType x);
void SListPopBack(SLTNode** pphead);
void SListPopFront(SLTNode** pphead);
SLTNode* SListFind(SLTNode* phead, SLTDataType x);
void SListInsert(SLTNode** pphead, SLTNode* pos, SLTDataType x);
void SListErase(SLTNode** pphead, SLTNode* pos);
void SListInsertAfter(SLTNode** pphead, SLTNode* pos, SLTDataType x);
void SListEraseAfter( SLTNode* pos);
void SListDestroy(SLTNode** pphead);
